/*
 * @Author: 一路向阳 tt_sunzhenfeng@163.com
 * @Date: 2024-02-21 17:39:06
 * @LastEditors: 一路向阳 tt_sunzhenfeng@163.com
 * @LastEditTime: 2024-02-21 17:43:23
 * @FilePath: \utils_ts\15.让this指向自定义对象.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
export {};

type ObjType = { myName: string, Person: (name: string) => void };

const obj: ObjType = {
  myName: 'z123',
  Person: () => {}
};

// 定义函数的时候，this的类型，必须和调用的时候的类型一致
// this: Window | ObjType 可以给多种类型所对应的对象，让this去指向
function Person(this: Window | ObjType, name: string) {
  this.myName = name;
}

obj.Person = Person;
obj.Person('123');

window.Person = Person;
window.Person('');